iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Python

探索 Python 世界:從語法基礎到圖像魔法系列 第 28

探索 Python 世界:從語法基礎到圖像魔法 Day28

  • 分享至 

  • xImage
  •  

講完人的辨識模型,今天來介紹汽車的辨識模型

辨識模型來源

OpenCV官方GitHub:
https://github.com/andrewssobral/vehicle_detection_haarcascades/blob/master/cars.xml

為什麼要有汽車辨識?

汽車辨識技術,在許多領域中都有著廣泛的應用,從交通管理到商業分析再到安全監控,現在只要透過道路監視攝影機與 AI 智慧辨識系統,便可輕鬆達到全時段或部分時段自動偵測是否有違規行為發生、並協助失竊與犯罪車輛協尋

車輛辨識

在 OpenCV 官方的 GitHub 下載模型後,將其與 Python 檔放在同一個資料夾中,並使用 cv2.CascadeClassifier 將欲使用模型載入預先訓練的分類器檔案的類別,在使用 detectMultiScale 掃描影像,使用不同的比例和位置偵測物體,並返回所有偵測到的汽車的邊框

Python:

import cv2

# 讀取圖像
img = cv2.imread('cars.jpg')
if img is None:
    raise FileNotFoundError("圖片文件未找到,請確保文件存在於當前目錄。")

# 轉換成灰階圖像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 讀取汽車檢測模型
car_cascade = cv2.CascadeClassifier('cars.xml')
if car_cascade.empty():
    raise FileNotFoundError("汽車檢測模型未找到,請檢查文件路徑。")

# 模糊化去除雜訊
gray = cv2.medianBlur(gray, 5)

# 偵測汽車
cars = car_cascade.detectMultiScale(gray, 1.1, 3, (30, 30))

# 繪製檢測到的汽車
for (x, y, w, h) in cars:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 0, 0), 2)

# 顯示結果
cv2.imshow('Detected Cars', img)
cv2.waitKey(0)  # 按下任意鍵停止
cv2.destroyAllWindows()

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20241006/20168687COvIC89s4C.png

參考資料:
https://steam.oxxostudio.tw/category/python/ai/ai-cars-dectection.html


上一篇
探索 Python 世界:從語法基礎到圖像魔法 Day27
下一篇
探索 Python 世界:從語法基礎到圖像魔法 Day29
系列文
探索 Python 世界:從語法基礎到圖像魔法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言